{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "from alns import ALNS, State\n",
    "from alns.criteria import HillClimbing\n",
    "\n",
    "import itertools\n",
    "\n",
    "import numpy.random as rnd\n",
    "\n",
    "import networkx as nx\n",
    "\n",
    "import tsplib95\n",
    "import tsplib95.distances as distances\n",
    "\n",
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "SEED = 9876"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# The travelling salesman problem\n",
    "\n",
    "The travelling salesman problem (TSP) is a classic problem in operations research. It asks how to construct the minimum distance tour between a number of cities, such that each city is visited once and the tour concludes at the starting city (that is, it forms a cycle). It is perhaps the best-known problem in the class of [NP-hard](https://en.wikipedia.org/wiki/NP-hardness) problems.\n",
    "\n",
    "### Data\n",
    "There are a considerable number of test data sets available for the TSP, varying in size from a hundred or so locations to many hundreds of thousands. For the sake of exposition, we shall use one of the smaller data sets: the data from the XQF131 VLSI instance, made available [here](http://www.math.uwaterloo.ca/tsp/vlsi/index.html#XQF131). It consists of 'only' 131 cities, with an optimal tour length of 564."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Total optimal tour length is 564.\n"
     ]
    }
   ],
   "source": [
    "data = tsplib95.load_problem('xqf131.tsp')\n",
    "\n",
    "solution = tsplib95.load_solution('xqf131.opt.tour')\n",
    "optimal = data.trace_tours(solution)[0]\n",
    "\n",
    "print('Total optimal tour length is {0}.'.format(optimal))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "def draw_graph(graph, only_nodes=False):\n",
    "    \"\"\"\n",
    "    Helper method for drawing TSP (tour) graphs.\n",
    "    \"\"\"\n",
    "    fig, ax = plt.subplots(figsize=(12, 6))\n",
    "\n",
    "    func = nx.draw_networkx\n",
    "\n",
    "    if only_nodes:\n",
    "        func = nx.draw_networkx_nodes\n",
    "\n",
    "    func(graph, data.node_coords, node_size=25, with_labels=False, ax=ax)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 864x432 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "draw_graph(data.get_graph(), True)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Operators and solution state\n",
    "\n",
    "To use the ALNS meta-heuristic, we need to have destroy and repair operators that work on a proposed solution, and a way to describe such a solution in the first place. The ALNS package exposes the class ``State`` to describe a solution, with an ``objective()`` member that computes this solution's objective value. Using it, we may compute a simple initial solution, and then apply the ALNS algorithm."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Solution state"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "class TspState(State):\n",
    "    \"\"\"\n",
    "    Solution class for the TSP problem. It has two data members, nodes, and edges.\n",
    "    nodes is a list of node tuples: (id, coords). The edges data member, then, is\n",
    "    a mapping from each node to their only outgoing node.\n",
    "    \"\"\"\n",
    "\n",
    "    def __init__(self, nodes, edges):\n",
    "        self.nodes = nodes\n",
    "        self.edges = edges\n",
    "\n",
    "    def copy(self):\n",
    "        \"\"\"\n",
    "        Helper method to ensure each solution state is immutable.\n",
    "        \"\"\"\n",
    "        return TspState(self.nodes.copy(),\n",
    "                        self.edges.copy())\n",
    "\n",
    "    def objective(self):\n",
    "        \"\"\"\n",
    "        The objective function is simply the sum of all individual edge lengths,\n",
    "        using the rounded Euclidean norm.\n",
    "        \"\"\"\n",
    "        return sum(distances.euclidean(node[1], self.edges[node][1])\n",
    "                   for node in self.nodes)\n",
    "    \n",
    "    def to_graph(self):\n",
    "        \"\"\"\n",
    "        NetworkX helper method.\n",
    "        \"\"\"\n",
    "        graph = nx.Graph()\n",
    "\n",
    "        for node, coord in self.nodes:\n",
    "            graph.add_node(node, pos=coord)\n",
    "\n",
    "        for node_from, node_to in self.edges.items():\n",
    "            graph.add_edge(node_from[0], node_to[0])\n",
    "\n",
    "        return graph"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Destroy operators\n",
    "\n",
    "Destroy operators break parts of a solution down, leaving an incomplete state. This is the first part of each iteration of the ALNS meta-heuristic; the incomplete solution is subsequently repaired by any one repair operator. We will consider three destroy operators: **worst removal**, **path removal** and **random removal**. We will also use a separate parameter, the degree of destruction, to control the extent of the damage done to a solution in each step."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "degree_of_destruction = 0.25\n",
    "\n",
    "def edges_to_remove(state):\n",
    "    return int(len(state.edges) * degree_of_destruction)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "def worst_removal(current, random_state):\n",
    "    \"\"\"\n",
    "    Worst removal iteratively removes the 'worst' edges, that is,\n",
    "    those edges that have the largest distance.\n",
    "    \"\"\"\n",
    "    destroyed = current.copy()\n",
    "\n",
    "    worst_edges = sorted(destroyed.nodes,\n",
    "                         key=lambda node: distances.euclidean(node[1],\n",
    "                                                              destroyed.edges[node][1]))\n",
    "\n",
    "    for idx in range(edges_to_remove(current)):\n",
    "        del destroyed.edges[worst_edges[-idx -1]]\n",
    "\n",
    "    return destroyed"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "def path_removal(current, random_state):\n",
    "    \"\"\"\n",
    "    Removes an entire consecutive subpath, that is, a series of\n",
    "    contiguous edges.\n",
    "    \"\"\"\n",
    "    destroyed = current.copy()\n",
    "    \n",
    "    node_idx = random_state.choice(len(destroyed.nodes))\n",
    "    node = destroyed.nodes[node_idx]\n",
    "    \n",
    "    for _ in range(edges_to_remove(current)):\n",
    "        node = destroyed.edges.pop(node)\n",
    "\n",
    "    return destroyed"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [],
   "source": [
    "def random_removal(current, random_state):\n",
    "    \"\"\"\n",
    "    Random removal iteratively removes random edges.\n",
    "    \"\"\"\n",
    "    destroyed = current.copy()\n",
    "    \n",
    "    for idx in random_state.choice(len(destroyed.nodes),\n",
    "                                   edges_to_remove(current),\n",
    "                                   replace=False):\n",
    "        del destroyed.edges[destroyed.nodes[idx]]\n",
    "\n",
    "    return destroyed"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Repair operators\n",
    "\n",
    "We implement a simple, **greedy repair** strategy. It determines a set of nodes that are currently not visited, and then links these up to the tour such that it forms one cycle."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [],
   "source": [
    "def would_form_subcycle(from_node, to_node, state):\n",
    "    \"\"\"\n",
    "    Ensures the proposed solution would not result in a cycle smaller\n",
    "    than the entire set of nodes. Notice the offsets: we do not count\n",
    "    the current node under consideration, as it cannot yet be part of\n",
    "    a cycle.\n",
    "    \"\"\"\n",
    "    for step in range(1, len(state.nodes)):\n",
    "        if to_node not in state.edges:\n",
    "            return False\n",
    "\n",
    "        to_node = state.edges[to_node]\n",
    "        \n",
    "        if from_node == to_node and step != len(state.nodes) - 1:\n",
    "            return True\n",
    "\n",
    "    return False"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [],
   "source": [
    "def greedy_repair(current, random_state):\n",
    "    \"\"\"\n",
    "    Greedily repairs a tour, stitching up nodes that are not departed\n",
    "    with those not visited.\n",
    "    \"\"\"\n",
    "    visited = set(current.edges.values())\n",
    "  \n",
    "    # This kind of randomness ensures we do not cycle between the same\n",
    "    # destroy and repair steps every time.\n",
    "    shuffled_idcs = random_state.permutation(len(current.nodes))\n",
    "    nodes = [current.nodes[idx] for idx in shuffled_idcs]\n",
    "\n",
    "    while len(current.edges) != len(current.nodes):\n",
    "        node = next(node for node in nodes \n",
    "                    if node not in current.edges)\n",
    "\n",
    "        # Computes all nodes that have not currently been visited,\n",
    "        # that is, those that this node might visit. This should\n",
    "        # not result in a subcycle, as that would violate the TSP\n",
    "        # constraints.\n",
    "        unvisited = {other for other in current.nodes\n",
    "                     if other != node\n",
    "                     if other not in visited\n",
    "                     if not would_form_subcycle(node, other, current)}\n",
    "\n",
    "        # Closest visitable node.\n",
    "        nearest = min(unvisited,\n",
    "                      key=lambda other: distances.euclidean(node[1], other[1]))\n",
    "\n",
    "        current.edges[node] = nearest\n",
    "        visited.add(nearest)\n",
    "\n",
    "    return current"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Initial solution"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Initial solution objective is 851.\n"
     ]
    }
   ],
   "source": [
    "random_state = rnd.RandomState(SEED)\n",
    "state = TspState(list(data.node_coords.items()), {})\n",
    "\n",
    "initial_solution = greedy_repair(state, random_state)\n",
    "\n",
    "print(\"Initial solution objective is {0}.\".format(initial_solution.objective()))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 864x432 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "draw_graph(initial_solution.to_graph())"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Heuristic solution"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [],
   "source": [
    "alns = ALNS(random_state)\n",
    "\n",
    "alns.add_destroy_operator(random_removal)\n",
    "alns.add_destroy_operator(path_removal)\n",
    "alns.add_destroy_operator(worst_removal)\n",
    "\n",
    "alns.add_repair_operator(greedy_repair)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [],
   "source": [
    "# This is perhaps the simplest selection criterion, where we only accept\n",
    "# progressively better solutions.\n",
    "criterion = HillClimbing()\n",
    "\n",
    "result = alns.iterate(initial_solution, [3, 2, 1, 0.5], 0.8, criterion,\n",
    "                      iterations=5000, collect_stats=True)\n",
    "\n",
    "solution = result.best_state\n",
    "\n",
    "objective = solution.objective()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Best heuristic objective is 606.\n",
      "This is 7.4% worse than the optimal solution, which is 564.\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 864x432 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "print('Best heuristic objective is {0}.'.format(objective))\n",
    "print('This is {0:.1f}% worse than the optimal solution, which is {1}.'\n",
    "      .format(100 * (objective - optimal) / optimal, optimal))\n",
    "\n",
    "_, ax = plt.subplots(figsize=(12, 6))\n",
    "result.plot_objectives(ax=ax, lw=2)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Having obtained a reasonable solution, we now want to investigate each operator's performance. This may be done via the `plot_operator_counts()` method on the `result` object, like below. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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StIe4gsvAJ9PlZKml5eXnzF48ODFjV0ZAKhCEAlgm1RQUDCqS5cuAzp27Lg8Ly8vGrs+ANDQKisrvWTJkuKFCxeOknRMY9cHAKrw7T6AbdUeHTt2XEUACeDzKi8vLzp27LhSyYwMANhmEEQC2FblEUAC+LxL3wf5vAZgm8KbEgAAAAAga1wTCWC70POypwfX5/FKrvvapM3lyc/PH9ynT591EaH8/Pz43//93w++/OUvr9nSsq655ppOF1100dLWrVtXbl1t63B123ptF129st7bZenSpfmjRo0quuyyy5ZI0pw5c5qMGzeu1dlnn72sPqu+pfa8d896bbu3Tntrs20nSffdd1+70047bbfJkyfP2GeffdbXZx1qsjX976mnnmp90003dR43bty7uajTrP4D6rXtB8yelXW/raiocI8ePcoeeeSR9zt06FBR1z777LNP/ylTpsze0vqMHj26XXFx8frBgwdv0evbokWLfdauXTtlS8sDgIbGSCQA1KJp06aVs2fPnjlnzpyZ11577bwrrrii+9Yc5/bbb+9cWlq6w7zfbmm7fPzxx/n/93//16lq+5133mn68MMPF21JmeXl5Vtb3W3OQw89VLTvvvuWjh49eovaYGvtaP1va1X123feeWdGu3btym+44YaOm9tnawJISfrrX//abtq0ac23Zl8A2B587v+pAEA2Vq5cmd+2bdtPI5mrrrqq8x577DGgb9++xRdddNHOkrRq1aq8IUOG7N6vX7/iPn36DLzzzjt3+sUvftFp8eLFhV/84hf7HnjggX0b7wxyI5t2+clPftL9ww8/bNq/f//is846q/uVV17ZbeLEia369+9f/POf/7xTeXm5zjrrrO5V+91www0dpGQ07MADD+x79NFH9+rXr9/AxjrH+rRy5cq8iRMntrr77rtL/vKXv+xUlT5ixIjOffv2Le7Xr1/xueee202Spk+f3vSQQw7p269fv+Li4uIBM2bMaCrV3MZz5sxp0qtXr4HHH398z759+xYfeeSRvVevXp1XU//785//3GbQoEH9i4uLBxx11FG9V65cmSdJjz32WJtevXoNHDx4cL/HHnusXcO3TsM56KCD1sybN69J1XZNbSolI4Oby3PLLbe0r3rtjjvuuF5jxoxp+fzzz7cbMWJE9/79+xfPmDGj6YwZM5oedthhfQYOHDhg8ODB/aZMmdJMkmbPnt1k0KBB/ffYY48BF1xwwafHBIBtHdNZAaAWZWVlef379y8uKyvz0qVLC5955pm3peRD+Lvvvtts2rRpsyJCQ4cO3f3ZZ59ttWjRooIuXbpsGD9+/LtSMgLXvn37ipEjR3Z+8cUX3+7atesOMZy2pe1y0003fTR8+PDms2fPniltOlXyxhtv7NC2bduK6dOnz1q3bp3333///kcfffQqSZo2bVrLKVOmzOjfv/8njXfG9ef+++9vN2TIkJV77bVXWbt27SpefvnlFvPnzy94+umnd5o0adLs1q1bVy5atChfkr71rW/1uvjiixeeeuqpK9auXeuKigrX1sa9e/f+pKSkpNntt99eMmzYsDUnnXRSzxtuuKHjNddcsyiz/y1YsKDgV7/6VdeXXnrp7TZt2lReeeWVXa699trO11xzzcLzzz+/55gxY+YMHDiwbPjw4b0bu61ypby8XOPGjWv9/e9/f6lUe7896qijSqv2qS1Px44dy2+88caur7766uyuXbuWL1q0KL9z584VQ4cOXTF8+PCVp59++nJJOvjgg/vecccdc/fcc8+ysWPHtjznnHN2mTBh0axX3AAABpxJREFUwtvnnnvuLmecccaS888//+Nf//rXmx0ZBYBtBUEkANSiavqbJD3//PMtTz/99F5vv/32jL///e9tXnrppTbFxcXFkrR27dq82bNnNzviiCNWX3nllT3OOeecbscee+zKI488srTuErZPW9ouvXv3rjMAfP7559vMnj27xRNPPLGTJK1evTp/5syZzZo0aRJ77bXXmh0lgJSkRx55pOiCCy5YLEknnHDCstGjRxdVVlbq29/+9qfXLHbu3Lli+fLleYsWLWpy6qmnrpCkFi1ahKSoq427dOnyybBhw9ZI0ne+852Pb7755k6SFmWWP378+JbvvfdeswMOOKC/JG3YsMGDBw8unTp1arPu3buX7bnnnmWSdMopp3w8atSoHSqoqfryY968eU322GOPtccdd9wqSaqtTTODyNryTJ48Oe/oo49eXvUFUefOnTe5xnLlypV5U6ZMaXXSSSftVpX2ySefWJImT57c6tlnn31Pks4666yPr7322q2aMg8ADY0gEgCyMHTo0DXLly8vWLBgQUFE6MILL1xwySWXLK2eb/LkyTMff/zxtldeeWW3559/ftWNN964oDHq21CyaZc5c+Y0qW1/SYoI33TTTR+ccMIJqzLTn3rqqdYtWrSo/8WIGsnChQvzJ0yY0Obtt99ufv7556uiosK246tf/eoK2xvljaj5123qauPqx6i+XbX/F77whVVPPvnk+5np//rXv5rXlH9HUvXlx8cff5w/bNiw3a+77rpOI0aMWFzX33OV2vL84he/6GS7zp8iqqioUOvWrcurvnipjp8yArA94ppIAMjClClTmlVWVqpz587lRx111KrRo0d3qLqW7P333y+cN29eQUlJSWHr1q0rzz333GUXXnjhoqlTp7aQpJYtW1ZU5d3RZNMubdu2rVizZs2n59+2bduK0tLS/KrtL3/5yytHjhzZsayszJI0bdq0pqtWrdrh2mv06NE7HX/88R/Pnz//rXnz5r21cOHCad27d/+kqKiofPTo0R1Wr16dJ0mLFi3KLyoqquzSpcsno0ePbidJ69at8+rVq/Nqa2NJWrBgQZPnn3++pSQ98MADRYccckiptHH/GzJkyJqJEye2mj59elNJWr16dd60adOaDho0aP1HH33UpOq6y4ceeqhBFv1pDO3bt6+4+eabP/jjH//YuayszHW1aZXa8hx55JGrnnjiiaKFCxfmS8lrJ0mtWrWqqOrDRUVFld27d//krrvu2kmSKisr9eqrrzaXpH333bf0zjvvLJKkO++8s31DtQEAfFaMRALYLmTzkxz1rWr6m5SMRIwcObKkoKBAxx9//KoZM2Y023///ftLUosWLSrvv//+92fPnt308ssv756Xl6eCgoK49dZb50rSaaedtvSoo47q06lTpw2vvfba2/VaySx+kqO+bWm7DBw4sGzw4MGlffr0GXj44YevvPnmm+cVFBREv379ir/1rW8tHTFixOKSkpKme+6554CIcFFR0YZnnnnmvVyfR7Y/yVFfHn300faXXnrpRiPTxx577PJZs2Y1O+qoo1YMGjRoQGFhYQwdOnTlLbfcMu9Pf/rT+2eeeeau11577c6FhYXx6KOPvldbGxcUFETv3r3X33XXXe3PPffcXXv16lV28cUXL5E27X+33357ycknn9y7akrlz372s3l77bVX2R/+8Ie5w4cP372oqKj8wAMPLJ01a1bOVhfN5ic5cunQQw9dN2DAgHWjRo3a6bzzzltWU5t269atvGp0trZ232+//db/5Cc/WXDYYYf1z8vLiz322GPt448/XnLKKacsO+ecc3redtttnR977LH3HnzwwX+feeaZu15//fVdy8vL/fWvf33ZwQcfvO7WW2/94OSTT+596623dj7mmGOWN2KTAMAWcW1TZgCgMb355psle++9d63TywD8x5w5c5oMHz68zzvvvDOjseuyo1i4cGH+vvvuWzx//vy3Grsub775Zoe99967Z2PXAwCq7HDThQAAAD6LkpKSwoMOOmjAeeedt2jzuQHg84fprAAAbOf69ev3CaOQ9adnz54bSkpKpjd2PQBgW8VIJIBtVWVlZeWOvVwkAGxG+j64w6xSDGDHQBAJYFs1fcmSJW0JJAF8XlVWVnrJkiVtJTEqCmCbwnRWANuk8vLyMxYuXDhq4cKFe4gvvAB8PlVKml5eXn5GY1cEADKxOisAAAAAIGt8uw8AAAAAyBpBJAAAAAAgawSRAAAAAICs/T9FV/73d7ZTzQAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 1008x432 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "figure = plt.figure(\"operator_counts\", figsize=(14, 6))\n",
    "figure.subplots_adjust(bottom=0.15, hspace=.5)\n",
    "result.plot_operator_counts(figure=figure, title=\"Operator diagnostics\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Several conclusions follow.\n",
    "\n",
    "* Of the destroy operators, `random_removal` and `path_removal` perform similarly: while `random_removal` results in more accepted solution states, both find globally best states at about the same rate. Observe that `worst_removal` does not actually result in many better or equivalent states, which suggests it is inferior to the other two destroy operators. \n",
    "* The `greedy_repair` repair heuristic leads to many solution states that are inferior to the current best state, and are thus rejected by the ALNS algorithm. This is unfortunate, and suggests a better repair heuristic should be found. Ideally, such a heuristic would better exploit the problem structure."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 864x432 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "draw_graph(solution.to_graph())"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Post-processing\n",
    "\n",
    "It is not difficult to see the above solution can easily be improved upon: there are plenty of inefficiencies in small subpaths near both the center and the various corners of the tour. We will partially remedy this with a single pass over all nodes, optimally choosing a subpath of length ``k`` starting at each of these nodes. Since such a process is computationally demanding, we select ``k = 6``."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [],
   "source": [
    "k = 6"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [],
   "source": [
    "def fix_bounds(permutation, start_node, end_node):\n",
    "    \"\"\"\n",
    "    Fixes the given permutation to the start and end nodes, such that\n",
    "    it connects up to the remainder of the solution.\n",
    "    \"\"\"\n",
    "    return (start_node,) + permutation + (end_node,)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [],
   "source": [
    "def optimal_subpath(nodes, start_node, end_node):\n",
    "    \"\"\"\n",
    "    Computes the minimum cost subpath from the given nodes, where the \n",
    "    subpath is fixed at start_node and end_node.\n",
    "    \"\"\"\n",
    "    def cost(subpath):\n",
    "        path = fix_bounds(subpath, start_node, end_node)\n",
    "        \n",
    "        return sum(distances.euclidean(path[idx][1], path[idx + 1][1])\n",
    "                   for idx in range(len(path) - 1))\n",
    "\n",
    "    subpath = min(itertools.permutations(nodes, k), key=cost)\n",
    "\n",
    "    return fix_bounds(subpath, start_node, end_node)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [],
   "source": [
    "def post_process(state):\n",
    "    \"\"\"\n",
    "    For each node in the passed-in state, this post processing step \n",
    "    computes the optimal subpath consisting of the next k nodes. This\n",
    "    results in a run-time complexity of about O(n * k!), where n is\n",
    "    the number of nodes.\n",
    "    \"\"\"\n",
    "    state = state.copy()\n",
    "\n",
    "    for start_node in state.nodes:\n",
    "        nodes = []\n",
    "        node = start_node\n",
    "\n",
    "        # Determine the next k nodes that make up the subpath starting\n",
    "        # at this start_node.\n",
    "        for _ in range(k):\n",
    "            node = state.edges[node]\n",
    "            nodes.append(node)\n",
    "        \n",
    "        end_node = state.edges[node]\n",
    "\n",
    "        optimal = optimal_subpath(nodes, start_node, end_node)\n",
    "        \n",
    "        # Replace the existing path with the optimal subpath.\n",
    "        for first, second in zip(optimal, optimal[1:]):\n",
    "            state.edges[first] = second\n",
    "\n",
    "    return state"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "New heuristic objective is 576.\n",
      "This is 2.1% worse than the optimal solution, which is 564.\n"
     ]
    }
   ],
   "source": [
    "new_solution = post_process(solution)\n",
    "\n",
    "new_objective = new_solution.objective()\n",
    "\n",
    "print(\"New heuristic objective is {0}.\".format(new_objective))\n",
    "print('This is {0:.1f}% worse than the optimal solution, which is {1}.'\n",
    "      .format(100 * (new_objective - optimal) / optimal, optimal))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 864x432 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "draw_graph(new_solution.to_graph())"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Conclusions\n",
    "\n",
    "In the code above we implemented a very simple heuristic for the TSP, using the ALNS meta-heuristic framework. We did not tinker too much with the various hyperparameters available on the ALNS implementation, but even for these relatively basic heuristic methods and workflow we find a very good result - just 2.1% worse than the optimal tour.\n",
    "\n",
    "This notebook showcases how the ALNS library may be put to use to construct powerful, efficient heuristic pipelines from simple, locally greedy operators."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.1"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
